using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using SpoonCore2.Message.Filter;
using SpoonCore2.Message.Header;
using SpoonCore2.Service;

namespace SpoonCore2.Message
{
	public abstract class AbstractMessage : IMessage
	{
		private readonly IList<IMessageOption> _options = new List<IMessageOption>();
		private readonly IList<IMessageFilterInfo> _filters = new List<IMessageFilterInfo>();
		public abstract void GetBytes(BinaryWriter bw);
		public abstract void SetBytes(IService service, BinaryReader br);

		public IList<IMessageOption> Options
		{
			get { return _options; }
		}

		public IList<IMessageFilterInfo> Filters
		{
			get { return _filters; }
		}
	}
}
